def user_info(name, age, gender):
    print(f"B-name={name}, age={age}, gender = {gender}")


# 关键字传参，可以乱序，也可以混用
user_info("小明", 20, "男")

user_info(name="小张", age=10, gender="男")

user_info(age=10, name="小花", gender="女")


# 缺省参数（默认值）,必须写到最后面
def user_info(name, age, gender="男"):
    print(f"A-name={name}, age={age}, gender = {gender}")


user_info("小明", 20, "男")


def user(name, age, gender="男"):
    print(f"name={name}, age={age}, gender = {gender}")


user("小明", 20)


# 不定长参数, 所有参数都被*args收集，形成一个元组， **args 代表键值对，组成字典
def users(*args, **kwargs):
    print(f"传进来的参数{args},{kwargs}")


users("小明", "小花", "小兰", name="你大爷", age=20)


# 函数作为参数传递
def compute(a, b):
    return a + b


def test_func(compute):
    result = compute(1, 2)
    print(f"计算结果{result}")
    print(f"参数类型：{type(compute)}")


test_func(compute)